﻿using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using DevExpress.XtraReports.UI;
using prjKQXS_Report.Hop_dong;
using prjKQXS_DLL;

namespace prjKQXS_UI.Hop_dong
{
    public partial class frmBienDongDlyCap2 : DevExpress.XtraEditors.XtraForm
    {
        private int thang = 0;
        private int nam = 0;
        private int denThang = 0;
        private string formBaoCao = "";

        SqlConnection conn = new SqlConnection(BienTc.connString);

        /// <summary>
        /// Biến này tự động được gán khi chọn đơn vị ở lueDonVi.
        /// Giá trị là '%' nếu cọn "Tất cả", hoặc là mã đơn vị tương ứng với dòng đã chọn.
        /// </summary>
        char MaDV;

        /// <summary>
        /// TenDV (Tên đơn vị) tự động được gán khi chọn cán bộ từ lueDonVi
        /// </summary>
        string TenDV;

        #region frm =======================================================================
        public frmBienDongDlyCap2()
        {
            InitializeComponent();
        }

        public frmBienDongDlyCap2(string formBaoCao)
        {
            InitializeComponent();
            ucDonVi1.lueDonVi.EditValueChanged += new EventHandler(lueDonVi_EditValueChanged);
            this.formBaoCao = formBaoCao;
        }

        private void frmBienDongDlyCap2_Load(object sender, EventArgs e)
        {
            Control.CheckForIllegalCrossThreadCalls = false;

            if (formBaoCao == "frmBienDongDlyCap2")
            {
                this.Text = "Báo cáo biến động đại lý cấp 2";
            }
            else
            {
                this.Text = "Báo cáo biến động đại lý toàn công ty";
            }

            marqueeProgressBarControl1.Properties.Stopped = true;
            loadDonVi();
            LoadThangNam();
        }

        private void loadDonVi()
        {
            ucDonVi1.lueDonVi.Properties.DataSource = clsCommon.load_lueDonVi();

            if (BienTc.isQuanHuyen || BienTc.isThanhPho || !clsCommon.hasPermission(BienTc.UserID, (int)BienTc.eFunction.L_DonVi))
            {
                ucDonVi1.lueDonVi.ItemIndex = ucDonVi1.lueDonVi.Properties.GetDataSourceRowIndex("Ma_DT", BienTc.ma_huyen == "" ? "TC" : BienTc.ma_huyen);
                if (BienTc.isQuanHuyen || BienTc.isThanhPho) ucDonVi1.lueDonVi.Properties.ReadOnly = true;
            }
            else ucDonVi1.lueDonVi.ItemIndex = 0;
        }
        #endregion frm ====================================================================


        #region Control ===================================================================
        private void sbtnChapnhan_Click(object sender, EventArgs e)
        {
            marqueeProgressBarControl1.Properties.Stopped = false;
            if (validate())
            {
                string n = cbbNam.Text;
                string n2 = "";

                if (n.Contains("Năm")) n2 = n.Replace("Năm", "");
                nam = int.Parse(n2.ToString().Trim());

                if (formBaoCao == "CongTy")
                {
                    if (ucDonVi1.lueDonVi.GetColumnValue("Ma_DT").ToString() == "TC")
                    {
                        rptTongHopDaiLyCTy frm = new rptTongHopDaiLyCTy(thang, denThang, nam);
                        frm.ShowRibbonPreviewDialog();
                    }
                    else
                    {
                        rptBienDongDaiLy rpt = new rptBienDongDaiLy("frmBienDongDlyCap2", nam, thang, denThang);
                        rpt.Parameters["pMaDV"].Value = MaDV;
                        rpt.Parameters["pTenDV"].Value = TenDV;
                        rpt.ShowRibbonPreviewDialog();
                    }
                }
                else
                {
                    frmBaoCao frm = new frmBaoCao(nam, thang, denThang, MaDV, TenDV, formBaoCao);
                    frm.ShowDialog();
                }
            }
            else clsCommon.MsgBox("Từ tháng đến tháng bạn nhập không chính xác. Vui lòng kiểm tra lại!", 0);
            marqueeProgressBarControl1.Properties.Stopped = true;
        }

        private void sbtnBoqua_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        #endregion Control ================================================================


        #region Sub and Func ==============================================================
        private void LoadThangNam()
        {
            for (int i = 1; i < 13; i++)
            {
                cbbThang.Items.Add("Tháng " + i);
            }
            cbbThang.SelectedIndex = DateTime.Now.Month - 1;

            for (int i = 1; i < 13; i++)
            {
                cbbDenthang.Items.Add("Tháng " + i);
            }
            cbbDenthang.SelectedIndex = DateTime.Now.Month - 1;

            int Nam = DateTime.Now.Year;

            for (int i = Nam; i > Nam - 10; i--)
            {
                cbbNam.Items.Add("Năm " + i);
            }
            cbbNam.SelectedIndex = 0;
        }

        private bool validate()
        {
            bool flag = true;
            thang = cbbThang.SelectedIndex + 1;
            denThang = cbbDenthang.SelectedIndex + 1;

            if (thang > denThang)
            {
                flag = false;
            }
            else
            {
                flag = true;
            }

            return flag;
        }

        private void lueDonVi_EditValueChanged(object sender, EventArgs e)
        {
            string madv = ucDonVi1.lueDonVi.GetColumnValue("Ma_DT").ToString().Trim();
            MaDV = madv == "TC" ? '%' : Convert.ToChar(madv);
            TenDV = ucDonVi1.lueDonVi.GetColumnValue("Ten_DT").ToString().Trim();
        }
        #endregion Sub and Func ===========================================================
    }
}